package com.zdkj.subway.st.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zdkj.common.core.entity.BaseEntity;
import com.zdkj.common.core.exceltools.HeaderToColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * @ProjectName: zdkj
 * @Package: com.zdkj.subway.st.entity
 * @ClassName: SwStInvalidTicket
 * @Description:
 * @Author: kangjian
 * @CreateDate: 2020/1/7 11:13
 * @Version: 1.0
 */
@Data
@ApiModel(value = "无效票管理")
@EqualsAndHashCode(callSuper = true)
@TableName("sw_tk_invalid_ticket")
public class SwStInvalidTicket extends BaseEntity<SwStInvalidTicket> {
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "唯一标识")
    private Long id;


    @ApiModelProperty(value = "线路")
    @HeaderToColumn(header = "线路")
    private String stationLine;

    @ApiModelProperty(value = "站点")
    @HeaderToColumn(header = "站点")
    private String stationCode;

    @ApiModelProperty(value = "票种")
    @HeaderToColumn(header = "票种")
    private String ticketType;

    @ApiModelProperty(value = "车票名称")
    @HeaderToColumn(header = "车票名称")
    private String ticketName;

    @ApiModelProperty(value = "新票卡次数")
    private Integer ticketTimes;

    @ApiModelProperty(value = "车票剩余次数")
    private Integer remainTimes;

    @ApiModelProperty(value = "车票金额")
    private BigDecimal ticketPrice;

    @ApiModelProperty(value = "车票剩余金额")
    private BigDecimal ticketPriceRemain;

    @ApiModelProperty(value = "班次")
    private String classNumber;

    @ApiModelProperty(value = "数据源(0:车站,1:线网)")
    @HeaderToColumn(header = "数据源")
    private String dataSource;

    @ApiModelProperty(value = "新票卡有效期")
    @HeaderToColumn(header = "新票卡有效期")
    private String activeTime;

    @ApiModelProperty(value = "票卡剩余次数")
    private Integer ticketTimesRemain;
    /**
     * 预估次数
     */
    @ApiModelProperty(value = "预估次数")
    private String estimatedNumber;

    @ApiModelProperty(value = "原卡号")
    @HeaderToColumn(header = "原卡号")
    private String oldCardOrder;

    @ApiModelProperty(value = "新卡号")
    @HeaderToColumn(header = "新卡号")
    private String newCardOrder;

    @ApiModelProperty(value = "是否人为损坏")
    @HeaderToColumn(header = "是否人为损坏")
    private String isDamage;

    @ApiModelProperty(value = "票卡查询状态")
    @HeaderToColumn(header = "票卡查询状态")
    private String ticketSearchStatus;

    @ApiModelProperty(value = "申请时间")
    @HeaderToColumn(header = "申请时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private LocalDate applyTime;

    @ApiModelProperty(value = "审核状态")
    @HeaderToColumn(header = "审核状态")
    private String checkStatus;

    @ApiModelProperty(value = "完善通知状态0：未通知 1：已通知 2:已确认")
    @HeaderToColumn(header = "完善通知状态0：未通知 1：已通知 2:已确认")
    private String confirmStatus;

    @ApiModelProperty(value = "下发状态")
    private String sendStatus;

    @ApiModelProperty(value = "发卡人ID")
    private String cardIssuerId;

    @ApiModelProperty(value = "发卡人")
    private String cardIssuer;

    @ApiModelProperty(value = "领用人ID")
    private String receiverId;

    @ApiModelProperty(value = "领用人")
    private String receiver;

    @ApiModelProperty(value = "领用时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private LocalDate receiveTime;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "车站人员")
    @HeaderToColumn(header = "车站人员")
    private Long stationPersonId;

    @ApiModelProperty(value = "交票人ID")
    @HeaderToColumn(header = "交票人")
    private Long handCardPersonId;

    @ApiModelProperty(value = "出库状态")
    private String outputStatus;

    @ApiModelProperty(value = "入库状态")
    private String inputStatus;
}
